import axios from "axios"; import { useEffect, useState } from "react"; import Filter from "../../../components/Filter"; import Header from "../../../components/Header"; import Layout from "../../../components/Layout"; import Pagination from "../../../components/Pagination"; import ProductCard from "../../../components/ProductCard"; import { getNameFromSlug } from "../../../helpers/slug"; import FilterIcon from "../../../icons/filter.svg"; export async function getServerSideProps(context) { const { slug, page = 1, category = '', price_from = '', price_to = '', order_by = '', } = context.query; let urlParameter = [ 'q=*', `page=${page}`, `brand=${getNameFromSlug(slug)}`, `category=${category}`, `price_from=${price_from}`, `price_to=${price_to}`, `order_by=${order_by}` ].join('&'); let searchResults = await axios(`${process.env.SELF_HOST}/api/shop/search?${urlParameter}`); searchResults = searchResults.data; return { props: { searchResults, page, slug, category, price_from, price_to, order_by } }; } export default function BrandDetail({ searchResults, page, slug, category, price_from, price_to, order_by }) { const pageCount = Math.ceil(searchResults.response.numFound / searchResults.responseHeader.params.rows); const productStart = searchResults.responseHeader.params.start; const productRows = searchResults.responseHeader.params.rows; const productFound = searchResults.response.numFound; const [activeFilter, setActiveFilter] = useState(false); const [filterCount, setFilterCount] = useState(0); const route = () => { let route = `/shop/brands/${slug}`; if (category) route += `&category=${category}`; if (price_from) route += `&price_from=${price_from}`; if (price_to) route += `&price_to=${price_to}`; if (order_by) route += `&order_by=${order_by}`; return route; } useEffect(() => { let calculateFilterCount = 0; if (category) calculateFilterCount++; if (price_from || price_to) calculateFilterCount++; if (order_by) calculateFilterCount++; setFilterCount(calculateFilterCount); }, [category, price_from, price_to, order_by]); return ( <>
setActiveFilter(false)} defaultPriceFrom={price_from} defaultPriceTo={price_to} defaultBrand='' defaultCategory={category} defaultOrderBy={order_by} searchResults={searchResults} disableFilter={['brand']} />

Produk

{productFound > 0 ? ( <> Menampilkan  {pageCount > 1 ? ( <> {productStart + 1}-{ (productStart + productRows) > productFound ? productFound : productStart + productRows }  dari  ) : ''} {searchResults.response.numFound}  produk untuk brand {getNameFromSlug(slug)} ) : 'Mungkin yang anda cari'}
{searchResults.response.products.map((product) => ( ))}
) }